ShimLink = {
    
    _hosts: {
      
      your: 'go.jumiansyah.net',
      another: 'click.accesstrade.co.id',
      www: 'www.jumiansyah.net',
      tld: 'jumiansyah.net',
   
    
    
    },
    
    parse_url: function(str, component) {
  
    // *     returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'}
    var key = ['source', 'scheme', 'authority', 'userInfo', 'user', 'pass', 'host', 'port', 
                        'relative', 'path', 'directory', 'file', 'query', 'fragment'],
        ini = (this.php_js && this.php_js.ini) || {},
        mode = (ini['phpjs.parse_url.mode'] && 
            ini['phpjs.parse_url.mode'].local_value) || 'php',
        parser = {
            php: /^(?:([^:\/?#]+):)?(?:\/\/()(?:(?:()(?:([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?()(?:(()(?:(?:[^?#\/]*\/)*)()(?:[^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
            strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
            loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-scheme to catch file:/// (should restrict this)
        };

    var m = parser[mode].exec(str),
        uri = {},
        i = 14;
    while (i--) {
        if (m[i]) {
          uri[key[i]] = m[i];  
        }
    }

    if (component) {
        return uri[component.replace('PHP_URL_', '').toLowerCase()];
    }
    if (mode !== 'php') {
        var name = (ini['phpjs.parse_url.queryKey'] && 
                ini['phpjs.parse_url.queryKey'].local_value) || 'queryKey';
        parser = /(?:^|&)([^&=]*)=?([^&]*)/g;
        uri[name] = {};
        uri[key[12]].replace(parser, function ($0, $1, $2) {
            if ($1) {uri[name][$1] = $2;}
        });
    }
    delete uri.source;
    return uri;
  
  },
    
 
   
    
    
     _endpoint: {
        
        url: 'http://www.jumiansyah.net/p/go.html?url='
        
    },
    
   
    
    
    
    process: function(link) {
      
      
      url = this.parse_url(link);
      
      if (this.is_local(url.host)) {
	
	  window.location = link;
	  return true;
	
	
      }
      
      else {
	
	
	this.shim(link);
	return true;
	
	
      }
      
    
    
  },
  
   shim: function(link) {
    

    var sl = this._endpoint.url+encodeURIComponent(link);

    window.location = sl;
     return false;
    
   },
  
  
   is_local: function(host) {
    
     for (var key in this._hosts) {
	
	if (this._hosts.hasOwnProperty(key)) {
	  
	  if (host == this._hosts[key]) {
		
	      return true;
	      
	      }
	  
	}
	
      }
    
	return false;
 
   }
  
  
  
  
  }
  
  
  
document.onclick = function (e) {
 e = e ||  window.event;
 var element = e.target || e.srcElement;

  if (element.tagName == 'A') {
 
    ShimLink.process(element.href);
   
    return false;
    
  }
  else {
    return true;
  }

};